package Logica.Celdas;

import Graficas.InterfaceGrafica;
import Graficas.SpriteMovements;
import Logica.Mario;
import Logica.Personaje;

/**
 * Implementacion de una Celda que representa un Ladrillo.
 * 
 * @author Mariano Rodecker
 * @author Matias Varela
 * 
 */
public class Ladrillo extends Celda {

	/* ################## CONSTRUCTORES ######################## */
	/**
	 * Constructor para un Ladrillo.
	 * 
	 * @param sizeX
	 *            - dimension en el eje x
	 * @param sizeY
	 *            - dimension en el eje y
	 * @param spriteMovements
	 *            - Sprites correspondientes a un Ladrillo.
	 * @param ig
	 *            - Interface Grafica que esta asociada al Ladrillo.
	 */

	public Ladrillo(int sizeX, int sizeY, SpriteMovements spriteMovements, InterfaceGrafica ig) {
		super(sizeX, sizeY, spriteMovements, ig);
		// TODO Auto-generated constructor stub
	}

	/* ################## COMANDOS ######################## */
	@Override
	public void golpear(Mario m) {
		super.golpear(m);
		if (!isInAnimation()){
			ig.hacerUpDownAnimation(this);
		}

	}

	/* ################## CONSULTAS ######################## */

	@Override
	public Celda clone() {

		Ladrillo toReturn = new Ladrillo(this.getSizeX(), this.getSizeY(), this.getSpriteMovements(), ig);
		toReturn.setX(this.getX());
		toReturn.setY(this.getY());
		toReturn.setInAnimation(this.isInAnimation());
		toReturn.setInteligencia(intel);
		return toReturn;

	}

	/**
	 * Un ladrillo no modifica un personaje.
	 */
	public void modificar(Personaje p) {
		// TODO Auto-generated method stub

	}

	@Override
	public void romper() {
		if (!this.isInAnimation()){
			inAnimation=true;
			ig.hacerAnimacionRomperLadrillo(this, this.sm.clone(), this.sizeX, this.sizeY);
		}
	}
}
